package br.edu.sistemaacademico.builder.impl;


import br.edu.sistemaacademico.builder.SQLBuilder;

public class InsertSQLBuilder extends SQLBuilder {
	public InsertSQLBuilder() {
		sql = new StringBuilder("insert into ");
	}

	@Override
	public void buildNomeTabela() {
		sql.append(nomeTabela).append(" ");
	}

	@Override
	public void buildColunas() {
		StringBuilder sb = new StringBuilder();
		sb.append("(");
		if(colunas.get(0).equalsIgnoreCase("matricula"))
			for (int ind = 0; ind < colunas.size(); ind++) {
				sb.append(colunas.get(ind));
				if (ind < (colunas.size() - 1))
					sb.append(", ");
			} // for (int ind = 0; ind < columns.size(); ind++)
		else
		for (int ind = 1; ind < colunas.size(); ind++) {
			sb.append(colunas.get(ind));
			if (ind < (colunas.size() - 1))
				sb.append(", ");
		} // for (int ind = 0; ind < columns.size(); ind++)

		sql.append(sb).append(") ");
	} // public void buildColunas()

	@Override
	public void buildValores() {
		StringBuilder sb = new StringBuilder();

		sb.append("values (");
		if(colunas.get(0).equalsIgnoreCase("matricula"))
			for (int ind = 0; ind < valores.size(); ind++) {
				if (valores.get(ind).getClass().getName().equalsIgnoreCase(
						"Java.Lang.Double")
						|| valores.get(ind).getClass().getName().equalsIgnoreCase(
								"Java.Lang.Integer")
						|| valores.get(ind).getClass().getName().equalsIgnoreCase(
								"Java.Lang.Long")
						|| valores.get(ind).getClass().getName().equalsIgnoreCase(
								"Java.Lang.Float")) {
					sb.append(valores.get(ind).toString());
				}else if(valores.get(ind).toString().equals("Null")){
					sb.append(valores.get(ind).toString());
				} else {
					sb.append("'").append(valores.get(ind).toString()).append("'");
				}
				if (ind < (valores.size() - 1))
					sb.append(", ");

			}
		else
		for (int ind = 1; ind < valores.size(); ind++) {
			if (valores.get(ind).getClass().getName().equalsIgnoreCase(
					"Java.Lang.Double")
					|| valores.get(ind).getClass().getName().equalsIgnoreCase(
							"Java.Lang.Integer")
					|| valores.get(ind).getClass().getName().equalsIgnoreCase(
							"Java.Lang.Long")
					|| valores.get(ind).getClass().getName().equalsIgnoreCase(
							"Java.Lang.Float")) {
				sb.append(valores.get(ind).toString());
			}else if(valores.get(ind).toString().equals("Null")){
				sb.append(valores.get(ind).toString());
			} else {
				sb.append("'").append(valores.get(ind).toString()).append("'");
			}
			if (ind < (valores.size() - 1))
				sb.append(", ");

		} // for (int ind = 0; ind < columns.size(); ind++)

		sql.append(sb).append(")");
	} // public void buildValores()

	public void buildCondicao() {
	}

} // public class InsertSQLBuilder extends SQLBuilder
